Skip to content

issues 8 - #189

Merged
luk384090-cloud merged 16 commits into
mainfrom
dev/issues-8
Sep 11, 2026
Merged

issues 8#189
luk384090-cloud merged 16 commits into
mainfrom
dev/issues-8

Conversation

@luk384090-cloud

Copy link
Copy Markdown
Collaborator
  • Introduce set_region(region, workspace_id) to switch HTTP, WebSocket, and OpenAI-compatible endpoints
  • Add support for MaaS international regions including Singapore, US East, Hong Kong, Germany, Japan, besides Beijing
  • Enable environment variable configuration for region and workspace ID
  • Implement runtime resolution of endpoint URLs with {workspace_id} placeholder substitution
  • Update internal API methods to support per-call workspace parameter for endpoint resolution
  • Enhance documentation with detailed usage examples of multi-region configuration
  • Add comprehensive unit tests covering region switching, URL resolving, and environment variable handling

Description

[Describe what this PR does and why]

Related Issue: Fixes #[issue_number] or Relates to #[issue_number]

Security Considerations: [Check if API keys or sensitive credentials are exposed in code/logs]

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Refactoring

Component(s) Affected

  • Model
  • Application
  • Common
  • Documentation
  • Tests
  • CI/CD

Checklist

  • Pre-commit hooks pass
  • Tests pass locally
  • Documentation updated (if needed)
  • Ready for review

Testing

[How to test these changes]

Additional Notes

[Optional: any other context]

zhansheng.lzs and others added 15 commits September 5, 2026 19:49
The warning quotes a literal 'dashscope[rl]', which rich reads as a style
tag and drops — users were told to run `pip install 'dashscope'`, which
installs none of the extras the message is about. Escape the exception
text.

Also drop the duplicated instruction: the reinforcement package's
ImportError already says how to install, so the CLI appended a second
copy. The hint is now added only when the underlying message lacks one.
Mirrors agenticCLI 1acdd7b. A provider persisted from a directory that
had a custom-extensions.toml (e.g. zhipu) cannot be built elsewhere, and
both entry points mishandled it: startup demanded an API key for a
provider with no definition and suggested an env var nothing reads, and
/provider offered that unbuildable name as the Enter default so a bare
Enter returned "Unknown provider: zhipu; cancelled".
- Introduce `set_region(region, workspace_id)` to switch HTTP, WebSocket, and OpenAI-compatible endpoints
- Add support for MaaS international regions including Singapore, US East, Hong Kong, Germany, Japan, besides Beijing
- Enable environment variable configuration for region and workspace ID
- Implement runtime resolution of endpoint URLs with `{workspace_id}` placeholder substitution
- Update internal API methods to support per-call workspace parameter for endpoint resolution
- Enhance documentation with detailed usage examples of multi-region configuration
- Add comprehensive unit tests covering region switching, URL resolving, and environment variable handling
API keys cannot be mixed across regions (401 on mismatch), so document
this next to set_region in both READMEs and the sample. Also document
US -us model suffix, EU/JP workspace deployment scope, feature
availability limits, and shared-domain overrides. Derive the
set_region region list from env.MAAS_REGIONS to prevent drift.
Per the official realtime WebSocket API docs, wss endpoints exist only
for cn-beijing and ap-southeast-1; set_region still sets the URL for
other regions, so warn that WS-based realtime APIs are unavailable there.
- providers/tongyi: switch from compatible-mode to the native
  generation route so calls land in the native SLS logstore; per-model
  text/multimodal-generation endpoint fallback covering both the
  HTTP-400 and the 200-SSE error-event variants of "url error";
  content parts/tool calls converted to the native shape
- embedded/sdk: new module + guide_url params; the dashscope expert
  entry stamps x-dashscope-sdk-client as acli/<version>/expert and the
  TUI/REPL startup banners show the locale-aware expert guide link
- first-run surfaces: get-api-key and dashscope-sdk-expert links in
  the no-key gate, the example-download offer, and the example README
- README/README_zh: how to obtain an API key + expert guide link
- includes the pending acli sync baseline (provider/key wizard fixes,
  subagents/config/dev/session/adapter updates)
…majors

Python 3.8 is 0.09% of recent downloads (pypistats, last 30 days) and
textual 8.x requires 3.9+, so py3.8 silently back-resolved the acli TUI
to an untested textual 6.x. Raise python_requires to >=3.9, widen the
CI matrix to 3.9-3.13 (it only ran 3.8), unify the httpx floor at 0.27
with agenticCLI, cap textual/anthropic/openai below their next breaking
majors, and switch the camera extra to opencv-python-headless (acli only
uses non-GUI cv2 APIs; headless drops the libGL system dependency).
- Synced from agenticCLI: trailing-comma drift in the key/provider
  wizards and the _print_no_key_prompt extraction that brings
  ensure_provider_key back under R0915.
- Test hygiene for the pylint gate: file-level disables where tests
  intentionally touch internals, from-imports (R0402), async-for
  draining instead of unassigned comprehensions (W0106).
- finetune/reinforcement: whitespace around == inside f-strings (E225),
  which only fails lint under Python 3.12's PEP 701 tokenizer.
Five parallel jobs added little signal: 3.9 covers the supported floor
(tomli backport, oldest dependency resolution), 3.12 is the dominant
download share (~47%), and 3.13 is the newest stable. 3.10/3.11 behave
identically for this codebase.
The rebase auto-merge stacked both fix variants: keep the
sync-consistent ones (extraction in handlers_key, async-for draining in
test_tongyi_native) and drop the duplicated file-level disables.
Bumps the vendored acli version to 0.6.5 (native DashScope route +
dependency hardening release).
@luk384090-cloud luk384090-cloud changed the title feat(region): add multi-region endpoint and workspace support issues 8 Sep 10, 2026
@luk384090-cloud
luk384090-cloud merged commit b3747ab into main Sep 11, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant